<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Hash;
use DB;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class PlateController extends Controller
{
   /*
        显示社区板块添加页面
   */
    public function getAdd()
    {
        //查询所有分区
        $partition = DB::table('partition')->get();

        //解析模板
        return view('admin.plate.add',['partition'=>$partition]);
    }

    /*
        执行添加 板块
    */
    public function postInsert(Request $request)
    {
        //接收部分参数
        $data = $request->only(['plate_name','partition_id']);
        //判断用户是否填写板块名称
        if(empty($data['plate_name'])){
            return back()->with('error','板块名称不能为空');
        }
        //查询是否有同名板块
        $res = DB::table('plate')->where('plate_name',$data['plate_name'])->first();
        //判断
        if($res){
            return back()->with('error','您输入的板块已经存在,请重新输入!');
        }

        //执行插入
        $res = DB::table('plate')->insert($data);
        if($res){
            return redirect('/admin/plate/index')->with('success','板块添加成功');
        }else{
            return back()->with('error','板块添加失败');
        }
    }

    /*
        板块列表
    */
    public function getIndex()
    {
        //查询所有板块
        $plate = DB::table('plate')
                    ->join('partition','plate.partition_id','=','partition.id')
                    ->select('plate.*','partition.partition_name')
                    ->get();

        //解析模板
        return view('admin.plate.index',['plate'=>$plate]);
    }

    /*
        显示修改页面
    */
    public function getEdit($id)
    {
        //根据id查询
        $plate = DB::table('plate')->where('id',$id)->first();
        //查询所有的分区
        $partition = DB::table('partition')->get();

        //解析模板
        return view('admin.plate.edit',['plate'=>$plate,'partition'=>$partition]);
    }

    /*
        执行修改
    */
    public function postUpdate(Request $request)
    {
        //接收id
        $id = $request->input('id');
        //接收原来的值
        $a = $request->only(['repartition_id','replate_name']);
        $aa = array_values($a);
        //接收新值
        $b = $request->only(['partition_id','plate_name']);
        $bb = array_values($b);
        //判断用户是否修改
        if($aa == $bb){
            return redirect('/admin/plate/index')->with('success','板块修改成功');
        }

        //判断板块名唯一
        $data = DB::table('plate')->where('plate_name',$b['plate_name'])->first();
        if($data){
            return back()->with('error','该板块名称已存在,请重新输入');
        }

        //执行修改
        $res = DB::table('plate')->where('id',$id)->update($b);
        //判断
        if($res){
            return redirect('/admin/plate/index')->with('success','板块修改成功');
        }else{
            return back()->with('error','板块修改失败');
        }
    }

    /*
        删除板块
    */
    public function postDelete(Request $request)
    {
        //接收id
        $id = $request->input('id');
        //查询当前板块下是否有 帖子
        $post = DB::table('tiezi')->where('plate_id',$id)->first();
        if($post){
            return 1;
        }

        //执行修改删除
        $res = DB::table('plate')->where('id',$id)->delete();
        if($res){
            return 2;
        }else{
            return 3;
        }
    }
}  
 